//package com.livace.doctool.pdf.application;
//
//import com.itextpdf.kernel.font.PdfFont;
//import com.itextpdf.kernel.font.PdfFontFactory;
//import com.itextpdf.kernel.pdf.PdfDocument;
//import com.itextpdf.kernel.pdf.PdfWriter;
//import com.itextpdf.layout.Document;
//import com.itextpdf.layout.element.AreaBreak;
//import com.itextpdf.layout.element.Paragraph;
//import org.apache.pdfbox.pdmodel.PDDocument;
//import org.apache.pdfbox.text.PDFTextStripper;
//import org.springframework.stereotype.Service;
//
//import java.io.IOException;
//import java.io.InputStream;
//import java.io.OutputStream;
//import java.util.HashMap;
//import java.util.Map;
//
//@Service
//public class PdfProcessingService {
//
//    private static final String CHINESE_FONT = "src/main/resources/fonts/Songti.ttc";
//    private static final String ENGLISH_FONT = "src/main/resources/fonts/arial.ttf";
//
//    // 检测中文字符
//    public boolean isChineseCharacter(char c) {
//        Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
//        return ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
//                || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
//                || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
//                || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
//                || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
//                || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS
//                || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION;
//    }
//
//    // 分离中英文文本
//    public Map<String, String> separateChineseAndEnglish(String line) {
//        StringBuilder chineseBuilder = new StringBuilder();
//        StringBuilder englishBuilder = new StringBuilder();
//
//        for (char c : line.toCharArray()) {
//            if (isChineseCharacter(c)) {
//                chineseBuilder.append(c);
//            } else if (!Character.isWhitespace(c) ||
//                      (chineseBuilder.length() > 0 && englishBuilder.length() == 0)) {
//                // 保留与中文相邻的空格
//                englishBuilder.append(c);
//            }
//        }
//
//        Map<String, String> result = new HashMap<>();
//        result.put("chinese", chineseBuilder.toString().trim());
//        result.put("english", englishBuilder.toString().trim());
//        return result;
//    }
//
//    // 处理PDF文件
//    public void processPdf(InputStream inputStream,
//                           OutputStream chineseOutputStream,
//                           OutputStream englishOutputStream) throws IOException {
//        byte[] pdfBytes = inputStream.readAllBytes(); // Java 9+
//        try (PDDocument document = PDDocument.load(pdfBytes)) {
//
//            PDFTextStripper stripper = new PDFTextStripper();
//
//            // 创建中文PDF文档
//            PdfDocument chinesePdf = new PdfDocument(new PdfWriter(chineseOutputStream));
//            Document chineseDoc = new Document(chinesePdf);
//            PdfFont chineseFont = PdfFontFactory.createFont(CHINESE_FONT, PdfFontFactory.EmbeddingStrategy.PREFER_EMBEDDED);
//
//            // 创建英文PDF文档
//            PdfDocument englishPdf = new PdfDocument(new PdfWriter(englishOutputStream));
//            Document englishDoc = new Document(englishPdf);
//            PdfFont englishFont = PdfFontFactory.createFont(ENGLISH_FONT, PdfFontFactory.EmbeddingStrategy.PREFER_EMBEDDED);
//
//            // 逐页处理
//            for (int pageNum = 0; pageNum < document.getNumberOfPages(); pageNum++) {
//                stripper.setStartPage(pageNum + 1);
//                stripper.setEndPage(pageNum + 1);
//                String pageText = stripper.getText(document);
//
//                // 按行处理
//                String[] lines = pageText.split("\\r?\\n");
//                for (String line : lines) {
//                    Map<String, String> separated = separateChineseAndEnglish(line);
//
//                    // 添加中文行
//                    if (!separated.get("chinese").isEmpty()) {
//                        chineseDoc.add(new Paragraph(separated.get("chinese"))
//                                  .setFont(chineseFont)
//                                  .setFontSize(12));
//                    }
//
//                    // 添加英文行
//                    if (!separated.get("english").isEmpty()) {
//                        englishDoc.add(new Paragraph(separated.get("english"))
//                                  .setFont(englishFont)
//                                  .setFontSize(12));
//                    }
//                }
//
//                // 添加分页符（除最后一页）
//                if (pageNum < document.getNumberOfPages() - 1) {
//                    chineseDoc.add(new AreaBreak());
//                    englishDoc.add(new AreaBreak());
//                }
//            }
//
//            chineseDoc.close();
//            englishDoc.close();
//        }
//    }
//}